package com.coolwen.encryption;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import java.util.Properties;

/**
 * Created by Nieyu on 2016/11/7.
 */
public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer {

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
            throws BeansException {
        String password = props.getProperty("jdbc.password");
        String username = props.getProperty("jdbc.username");
        if (password != null) {
            Des des = new Des(); // 实例化一个对像
            des.getKey(Des.generateKeyStr); // 生成密匙 （同一个key）
            // 解密jdbc.password属性值，重新明文赋值
            String strDes = des.getDesString(password);// 密文解密成明文
            props.setProperty("jdbc.password", strDes);//赋值
        }
        if (username != null) {
            Des des = new Des(); // 实例化一个对像
            des.getKey(Des.generateKeyStr); // 生成密匙 （同一个key）
            // 解密jdbc.password属性值，重新明文赋值
            String strDes = des.getDesString(username);// 密文解密成明文
            props.setProperty("jdbc.username", strDes);//赋值
        }
        super.processProperties(beanFactory, props);

    }
}
